맨위로가기

데이터 흐름도

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

데이터 흐름도(DFD)는 시스템의 워크플로우를 모델링하기 위해 사용되는 그래프 이론 기반의 다이어그램이다. 1970년대 중반 구조적 분석 및 설계 기법에서 시작되었으며, 프로세스, 데이터 흐름, 저장소, 종단점으로 구성된다. DFD는 시스템의 주요 단계와 데이터 흐름을 시각화하는 데 사용되며, 여러 단계의 계층 구조로 상세화될 수 있다. DFD 작성에는 하향식 접근법과 이벤트 분할법이 사용되며, Microsoft Visio, Dia, GitMind 등 다양한 도구를 통해 DFD를 작성할 수 있다.

더 읽어볼만한 페이지

  • 시스템 분석 - 수학적 최적화
    수학적 최적화는 주어진 집합에서 실수 또는 정수 변수를 갖는 함수의 최댓값이나 최솟값을 찾는 문제로, 변수 종류, 제약 조건, 목적 함수 개수에 따라 다양한 분야로 나뉘며 여러 학문 분야에서 활용된다.
  • 시스템 분석 - 시스템 통합
    시스템 통합은 오픈 시스템 환경에서 다양한 벤더의 제품을 조합하여 전체 시스템을 구축하는 서비스로, 정보 시스템 구축 아웃소싱과 함께 발전했지만 IT 환경 변화로 쇠퇴기에 접어들어 현재는 새로운 사업 모델을 모색하고 있으며, IT 컨설팅부터 유지 보수까지 다양한 단계를 거쳐 수직적, 스타, 수평적 통합 등 여러 통합 방법을 사용한다.
  • 그래프 그리기 - 덴드로그램
    덴드로그램은 데이터 분석에서 데이터 포인트 간 계층적 관계를 시각적으로 표현하는 나무 형태의 다이어그램으로, 군집 분석에서 클러스터 간 유사성을 나타내기 위해 활용되며 다양한 분야에 응용된다.
  • 그래프 그리기 - 상태도 (오토마타 이론)
    상태도는 유한 오토마타 이론에서 시스템의 상태와 전이를 시각적으로 표현하는 유향 그래프이며, 무어 머신, 밀리 머신, 하렐 상태도 등 다양한 형태로 활용된다.
  • 모델링 언어 - 차트
    차트는 통계 데이터를 점, 선, 도형 등으로 묘사하여 데이터의 규칙성, 경향 등을 시각적으로 제시하고 분석 방향을 제시하는 도표이며, 히스토그램, 막대그래프, 원그래프, 선 그래프 등이 흔히 사용된다.
  • 모델링 언어 - 순서도
    순서도는 컴퓨터 알고리즘이나 프로세스를 시각적으로 표현하는 도구로, 흐름 공정 차트에서 기원하여 컴퓨터 프로그래밍 분야에서 알고리즘을 설명하는 데 사용되며, 다양한 종류와 소프트웨어 도구가 존재한다.
데이터 흐름도
개요
데이터 흐름 다이어그램 표기법 예시
데이터 흐름 다이어그램
유형다이어그램
목적시스템 모델링
표기법Gane & Sarson
Yourdon & Coad
상세 정보
구성 요소외부 엔티티 (종단점)
프로세스
데이터 저장소
데이터 흐름
사용 분야시스템 분석
소프트웨어 공학
데이터베이스 설계
프로세스 모델링

2. 역사

데이터 흐름도 표기법은 조직의 워크플로우를 모델링하기 위해 운영 연구에서, 그리고 컴퓨터 과학에서 계산 전반에 걸쳐 입력과 출력의 흐름을 모델링하기 위해 사용된 그래프 이론을 기반으로 한다.[2][3] 1970년대 중반 구조적 분석 및 설계 기법 방법론에서 시작되었다.[3] 래리 콘스탄틴이 처음 제안하였으며,[4] 에드워드 요던, 톰 드마르코,[5] 크리스 게인과 트리스 사르손이 대중화하였다.[6][7]

데이터 흐름도(DFD)의 주요 목표는 서로 다른 모듈 간의 상호 의존성을 합리화하면서 복잡한 모듈식 시스템을 구축하는 것이었다.[3] 소프트웨어 시스템 프로세스에 관련된 주요 단계와 데이터를 시각화하는 데 빠르게 사용되었다. 이론적으로 비즈니스 프로세스 모델링에도 적용될 수 있지만, 일반적으로 컴퓨터 시스템의 데이터 흐름을 보여주는 데 사용되었다.[8]

일반적으로 설계자는 처음에 시스템과 시스템 외부와의 상호 작용을 컨텍스트 레벨의 DFD로 그린 후, 컨텍스트 레벨의 DFD를 "상세화"하여 시스템의 세부를 모델링해 나간다.

래리 콘스탄틴이 Martin과 Estrin의 "data flow graph" 모델을 기반으로 데이터 흐름도를 제안한 것이 시작이다.[12]

데이터 흐름도(DFD)는 SSADM의 3가지 기본 그림 중 하나이다. DFD를 사용하면 시스템이 어떻게 구현되고, 무엇을 어떻게 실행하는지를 사용자가 눈으로 볼 수 있다.

데이터 흐름도의 표기법에는 Yourdon & Coad의 표기법과 Gane & Sarson의 표기법[13]이 있으며, 프로세스, 데이터 스토어, 데이터 흐름, 외부 실체와 같은 요소의 모양이 다르다.[14]

2. 1. 한국 정보 시스템 개발과 DFD

한국에서 DFD는 1980년대 후반부터 정보 시스템 개발 프로젝트에 본격적으로 도입되기 시작했다. 초기에는 주로 대규모 시스템 통합(SI) 프로젝트에서 사용되었으며, 시스템 분석 및 설계 단계에서 핵심적인 도구로 활용되었다. 1990년대 이후, 객체지향 방법론과 UML(Unified Modeling Language)이 확산되면서 DFD의 사용 빈도는 상대적으로 감소했지만, 여전히 복잡한 시스템의 데이터 흐름을 한눈에 파악하는 데 유용한 도구로 인식되고 있다.[3] [9]

3. 구성 요소

Data flow diagram - 요던/드마르코 표기법
데이터 흐름도 - 요던/드마르코 표기법


데이터 흐름도(DFD)는 프로세스, 흐름, 저장소, 종단점으로 구성된다. 이러한 DFD 구성 요소를 나타내는 방법에는 여러 가지가 있다.[1]

데이터 흐름도의 표기법에는 Yourdon & Coad 표기법과 Gane & Sarson 표기법[13]이 있으며, 프로세스, 데이터 스토어, 데이터 흐름, 외부 실체와 같은 요소의 모양이 서로 다르다.[14]

구성 요소설명기호
프로세스입력 데이터를 처리하여 출력을 생성.원, 타원, 둥근 모서리가 있는 사각형.
데이터 흐름시스템 구성 요소 간 정보 전달.화살표.
저장소나중에 사용할 데이터를 저장.두 개의 수평선 (또는 다른 방식).
종단점시스템과 통신하는 외부 엔티티.사각형 또는 타원형.


3. 1. 프로세스 (Process)

프로세스는 입력을 출력으로 변환하는 시스템의 일부이다. 프로세스 기호는 원, 타원, 사각형 또는 둥근 모서리가 있는 사각형이다(표기법 유형에 따라 다름). 프로세스는 그 본질을 명확하게 표현하는 한 단어, 짧은 문장 또는 구문으로 명명된다.[7]

데이터 흐름도 예시


데이터 흐름도의 4가지 구성 요소 중 하나인 '''프로세스'''는 원 또는 모서리를 둥글게 한 다각형으로 표시되며, 입력 데이터를 처리하여 가공하고, 그 결과 데이터를 출력한다.

하나의 DFD에는 최대 10개 이내의 부품을 그려야 한다. 10개 이상의 부품으로 구성되는 처리는 여러 부품을 하나로 묶은 개요 레벨의 DFD와, 묶은 부분을 상세히 그린 상세 레벨의 DFD로 분할한다. 각 부품에는 번호를 부여하는데, 최상위 레벨 DFD에 부품 1, 2, 3, 4, 5가 있다면, 부품 3에 관한 DFD에는 3.1, 3.2, 3.3, 3.4와 같이 번호를 부여한다. 부품 3.2의 DFD에는 3.2.1, 3.2.2와 같은 번호를 부여한다.[10]

3. 2. 데이터 흐름 (Data Flow)

데이터 흐름(흐름, 데이터 흐름)은 시스템의 한 부분에서 다른 부분으로 정보(때로는 자료)의 전달을 보여준다. 흐름의 기호는 화살표이다. 흐름은 어떤 정보(또는 어떤 자료)가 이동하는지 결정하는 이름을 가져야 한다. 예외는 이러한 흐름에 연결된 엔티티를 통해 어떤 정보가 전달되는지 명확한 흐름이다. 자료 이동은 단순한 정보 전달이 아닌 시스템에서 모델링된다. 흐름은 하나의 유형의 정보(자료)만 전송해야 한다. 화살표는 흐름 방향을 표시한다(엔티티에 대한 정보가 논리적으로 종속된 경우 양방향일 수도 있다. 예를 들어 질문과 답변). 흐름은 프로세스, 저장소, 종단점을 연결한다.[7]

3. 3. 저장소 (Data Store)

저장소(데이터 저장소, 파일, 데이터베이스)는 나중에 사용하기 위해 데이터를 저장하는 데 사용된다. 저장소 기호는 두 개의 수평선이며, DFD 표기법에 따라 다른 방식으로 표시될 수 있다. 저장소 이름은 복수 명사(예: 주문)이다.[7] 저장소는 단순히 데이터 파일일 필요는 없으며, 예를 들어 문서 폴더, 파일 캐비닛 또는 일련의 광 디스크일 수도 있다. 따라서 DFD에서 저장소를 보는 것은 구현과 독립적이다. 저장소에서 오는 흐름은 일반적으로 저장소에 저장된 데이터의 읽기를 나타내며, 저장소로 가는 흐름은 일반적으로 데이터 입력 또는 업데이트(때로는 데이터 삭제)를 나타낸다.[7]

3. 4. 종단점 (Terminator)

종단점은 시스템과 통신하고 시스템 외부에 있는 외부 엔티티이다. 예를 들어, 다양한 조직(예: 은행), 사람 그룹(예: 고객), 당국(예: 세무서) 또는 모델 시스템에 속하지 않는 동일한 조직의 부서(예: 인사 부서) 등이 될 수 있다.[7] 종단점은 모델링된 시스템이 통신하는 다른 시스템일 수도 있다.[7]

4. DFD 작성 규칙

엔티티 이름은 추가 설명 없이 이해할 수 있어야 한다. DFD는 시스템 사용자와의 인터뷰를 기반으로 분석가가 생성하는 시스템이다. 이는 시스템 개발자, 프로젝트 계약자 등을 위해 결정되므로, 엔티티 이름은 모델 도메인이나 비전문 사용자 또는 전문가에 맞게 조정되어야 한다. 엔티티 이름은 일반적(예: 활동을 수행하는 특정 개인과 독립적)이어야 하지만, 엔티티를 명확하게 지정해야 한다.[1] 프로세스는 특정 프로세스를 더 쉽게 연결하고 참조할 수 있도록 번호가 매겨져야 한다. 번호 매기기는 임의적이지만, 모든 DFD 레벨에서 일관성을 유지해야 한다(DFD 계층 구조 참조). DFD는 명확해야 하며, 하나의 DFD에 있는 최대 프로세스 수는 6~9개, 최소는 3개로 권장된다.[1][7] 예외는 단일 프로세스가 모델 시스템을 상징하고 시스템과 통신하는 모든 터미네이터가 있는 소위 문맥 다이어그램이다.

데이터 흐름도는 개체-관계 모델, 상태 다이어그램, 데이터 사전, 프로세스 명세 모델과 일관성을 유지해야 한다. 각 프로세스는 이름, 입력 및 출력을 가져야 한다. 각 흐름은 이름을 가져야 한다(예외는 흐름 참조). 각 데이터 저장소는 입력 및 출력 흐름을 가져야 한다. 입력 및 출력 흐름이 하나의 데이터 흐름도에 모두 표시될 필요는 없지만, 동일한 시스템을 설명하는 다른 데이터 흐름도에는 존재해야 한다. 예외는 시스템 외부의 창고(외부 저장소)로, 시스템이 이와 통신하는 경우이다.[7]

DFD(데이터 흐름도) 작성 규칙은 다음과 같다.


  • 프로세스는 최소 하나 이상의 입력 및 출력 데이터 흐름과 연결되어야 한다.
  • 프로세스는 데이터에 어떠한 변경을 가하여 출력해야 한다.
  • 데이터 저장소는 최소 하나 이상의 데이터 흐름과 연결되어야 한다.
  • 외부 실체는 최소 하나 이상의 데이터 흐름과 연결되어야 한다.
  • 데이터 흐름은 최소 하나 이상의 프로세스와 연결되어야 한다.

5. DFD 계층 구조

DFD는 여러 단계로 구성되어 더 투명하게 만들 수 있다. 상위 레벨 DFD는 개략적인 정보를 담고 있으며, 하위 레벨 DFD에서 더 자세한 내용을 집계한다. 이 계층 구조에서 가장 높은 수준은 컨텍스트 다이어그램이다.[12]

전체 DFD 계층 구조를 명확하게 보여주기 위해 수직(단면) 다이어그램을 그릴 수 있다. 이때, 저장소(데이터 스토어)는 처음 사용되는 최상위 레벨뿐만 아니라 모든 하위 레벨에도 표시된다.[12]

5. 1. 컨텍스트 다이어그램 (Context Diagram)

일반적으로 설계자는 처음에 시스템과 시스템 외부와의 상호 작용을 컨텍스트 레벨의 DFD로 그린다. 이는 하나의 프로세스로 표현된 시스템과 시스템 외부 환경(터미네이터군)과의 상호 작용(데이터 흐름)을 나타낸다.[14] 그 후 컨텍스트 레벨의 DFD를 "상세화"하여 시스템의 세부를 모델링해 나간다.

5. 2. 레벨 0 DFD (Level 0 DFD)

레벨 0 DFD는 컨텍스트 다이어그램을 상세화한 것으로, 시스템의 주요 기능(프로세스)들을 보여준다. 프로세스들은 번호로 식별된다 (예: 프로세스 1, 프로세스 2).[12] DFD 레벨 0은 가장 중요한(집계된) 시스템 기능을 포함한다.[12]

번호 매기기는 DFD 1의 첫 번째 레벨에서 계속된다. 예를 들어, 프로세스 1은 1.1, 1.2, 1.3으로 번호가 매겨진 세 개의 하위 레벨로 나뉜다. 마찬가지로, 두 번째 레벨(DFD 2)의 프로세스는 2.1.1, 2.1.2, 2.1.3 및 2.1.4로 번호가 매겨진다. 레벨 수는 모델 시스템의 크기에 따라 달라진다. DFD 0 프로세스는 분해 레벨 수가 동일하지 않을 수 있다.[12]

가장 낮은 레벨에는 대략 A4 용지 한 페이지에 대한 프로세스 사양을 생성할 수 있는 프로세스가 포함되어야 한다. 미니 사양이 더 길어야 하는 경우, 여러 프로세스로 분해될 프로세스에 대한 추가 레벨을 생성하는 것이 적절하다.[12]

5. 3. 하위 레벨 DFD (Lower Level DFD)

DFD를 더 투명하게 만들기 위해 다단계 DFD를 생성할 수 있다. 상위 레벨의 DFD는 덜 상세하며, 하위 레벨에서 더 자세한 DFD를 집계한다. 소위 첫 번째 레벨인 DFD 1에서 번호 매기기가 계속된다. 예를 들어, 프로세스 1은 DFD의 처음 세 레벨로 나뉘며, 1.1, 1.2, 1.3으로 번호가 매겨진다. 마찬가지로, 두 번째 레벨(DFD 2)의 프로세스는 2.1.1, 2.1.2, 2.1.3 및 2.1.4로 번호가 매겨진다. 레벨 수는 모델 시스템의 크기에 따라 달라진다. DFD 0 프로세스는 분해 레벨 수가 동일하지 않을 수 있다. DFD 0은 가장 중요한(집계된) 시스템 기능을 포함한다. 가장 낮은 레벨에는 대략 A4 용지 한 페이지에 대한 프로세스 사양을 생성할 수 있는 프로세스가 포함되어야 한다. 미니 사양이 더 길어야 하는 경우, 여러 프로세스로 분해될 프로세스에 대한 추가 레벨을 생성하는 것이 적절하다. 전체 DFD 계층 구조를 명확하게 파악하기 위해 수직(단면) 다이어그램을 만들 수 있다. 창고는 처음 사용되는 최고 레벨과 모든 하위 레벨에도 표시된다.[12]

더 나아가 각 프로세스를 상세화하여 서브 프로세스군으로 분할한 그림을 그린다. 이 기법에서는 각 프로세스가 쉽게 코딩할 수 있을 정도가 될 때까지 이상의 상세화 과정을 반복해 나간다.

6. DFD 작성법

DFD 작성법은 구조적 설계를 개발한 Larry Constantine|래리 콘스탄틴영어이 제안하였다.[12] DFD는 SSADM의 3가지 기본 그림 중 하나로, 프로젝트 출자자나 최종 사용자가 시스템 개발 전 단계에서 설명을 듣고 상의할 때 사용된다. 사용자는 DFD를 통해 시스템 구현 방식과 실행 내용을 시각적으로 확인하고, 기존 시스템과 신규 시스템의 DFD를 비교하여 효율화된 부분을 파악할 수 있다. 또한, 데이터 입력 위치를 구체적으로 파악할 수 있다.

DFD 표기법에는 Yourdon & Coad 표기법과 Gane & Sarson 표기법[13]이 있으며, 프로세스, 데이터 스토어, 데이터 흐름, 외부 실체 등의 요소 모양이 서로 다르다.[14]

6. 1. 하향식 접근법 (Top-Down Approach)

시스템 설계자는 컨텍스트 레벨의 DFD를 작성하는데, 이는 하나의 프로세스로 표현된 시스템과 시스템 외부 환경(터미네이터군)과의 상호 작용(데이터 흐름)을 나타낸다.

이후 시스템을 상세화한 DFD를 그리는데, 여기에는 복수의 프로세스, 데이터 스토어, 그리고 이들을 연결하는 데이터 흐름이 그려진다.

더 나아가 각 프로세스를 상세화하여 서브 프로세스군으로 분할한 그림을 그린다.

이러한 기법에서는 각 프로세스가 쉽게 코딩할 수 있을 정도가 될 때까지 위의 상세화 과정을 반복한다.

6. 2. 이벤트 분할법 (Event Partitioning Approach)

이 기법은 에드워드 요든의 [http://www.yourdon.com/strucanalysis/ "Just Enough Structured Analysis"]에 제시되어 있다.

이벤트 분할법은 다음 단계를 따른다.

# 모든 이벤트 목록을 작성한다.

# 각 이벤트에 대응하는 프로세스를 만든다.

# 각 프로세스를 다른 프로세스나 데이터 저장소와 연결하여, 이벤트에 대한 충분한 정보를 얻을 수 있도록 한다.

# 각 프로세스의 이벤트에 대한 반응은 해당 프로세스에서 나가는 데이터 흐름으로 모델링된다.

7. DFD 도구

데이터 흐름도(DFD)는 다양한 소프트웨어 도구를 사용하여 작성할 수 있다. Dia, Dynamic Draw, GitMind 등은 오픈 소스 또는 프리웨어 도구이며, Microsoft Visio, Enterprise Architect, astah* 등은 상용 도구이다. 이러한 도구들은 DFD 작성을 위한 기능을 제공하며, 일부는 템플릿을 제공하기도 한다.

7. 1. 상용 도구

Microsoft Visio는 윈도우용 그림 그리기 도구로, DFD의 기본적인 부분을 지원한다.[1] Enterprise Architect는 UML 모델링 도구로, DFD를 애드인으로 그릴 수 있다.[2] astah*는 UML 모델링 도구로, 유료 버전에서 DFD를 지원한다.[3]

7. 2. 오픈 소스/프리웨어 도구


  • Dia - 오픈 소스 그림 그리기 도구이다. DFD도 지원한다.[1]
  • Dynamic Draw - 프리웨어 그림 그리기 도구이다. DFD용 템플릿도 템플릿 라이브러리에 있다.[2]
  • iEdit - 프리웨어의 그리기 기능이 있는 아웃라인 프로세서이다. DFD도 셰이프 파일 도입으로 그릴 수 있다.[6]
  • GitMind - 온라인에서 무료로 이용 가능한 마인드 맵 도구이다. 데이터 흐름도를 그릴 수 있다.[7]

참조

[1] 학술지 Assessing the quality of hypertext views 1990-11-01
[2] 학술지 Models of Computations and Systems—Evaluation of Vertex Probabilities in Graph Models of Computations https://dl.acm.org/d[...] 1967-04-01
[3] 서적 Structured Design Yourdon Inc. 1975
[4] 서적 15th Design Automation Conference IEEE Press 1978-06-19
[5] 서적 Structured analysis and system specification Prentice-Hall 1979
[6] 서적 Structured systems analysis: tools and techniques Prentice-Hall 1979
[7] 서적 Proceedings of the May 19-22, 1975, national computer conference and exposition on - AFIPS '75 1975
[8] 학술지 A Comparative of business process modelling techniques 2016-04-01
[9] 서적 Applying UML and patterns : an introduction to object-oriented analysis and design and iterative development Pearson 2012
[10] 서적 Analýza a návrh informačních systémů Ekopress 1999
[11] 문서 "The Semantics of Data Flow Diagrams" University of Nijmegen 1993
[12] 학술지 Structured Design 1974
[13] 문서 Structured Systems Analysis: Tools and Techniques. McDonnell Douglas Systems Integration Company 1977
[14] 웹사이트 How to draw Data Flow Diagrams http://www.smartdraw[...]
[15] 서적



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com